package showgo.modell.inszenierung;

import java.util.ArrayList;
import java.util.List;

import showgo.modell.stamm.Person;
import showgo.modell.stueck.Rolle;

public class Darstellerposten {

    // Klasse fuer Darstellerposten;

    private Rolle rolle;
    private List<Person> besetzung = new ArrayList<Person>();

    public Rolle getRolle() {
	return rolle;
    }

    public void setRolle(Rolle rolle) {
	this.rolle = rolle;
    }

    public List<Person> getBesetzung() {
	return besetzung;
    }

    public void setBesetzung(List<Person> besetzung) {
	this.besetzung = besetzung;
    }

    public Darstellerposten(Rolle rolle, List<Person> besetzung) {
	// Ein Darstellerposten besteht aus einer Rolle und
	// der dazugehoerigen Besetzung mit mind. einer Person;
	super();
	this.rolle = rolle;
	this.besetzung = besetzung;
    }

    public Darstellerposten tiefeKopie() {
	Rolle neueRolle = this.rolle.tiefeKopie();
	List<Person> neueBesetzung = new ArrayList<Person>();
	for (Person p : this.besetzung) {
	    neueBesetzung.add(p.tiefeKopie());
	}
	return new Darstellerposten(neueRolle, neueBesetzung);
    }

}
